using System;
using System.Runtime.InteropServices;
namespace BMC.ARSystem
{
	[ClassInterface, ComVisible(false), Guid("a7e0957c-e5b6-422c-9e1a-eb578f4d73be"), ProgId("BMC.ARSystem.DataDictionaryMenu")]
	public abstract class DataDictionaryMenu : Menu
	{
		[ARStructMemTypeInfo(Name = "server", Offset = 0u)]
		private string _server;
		[ARStructMemTypeInfo(Name = "nameType", Offset = 1u)]
		private uint _nameType;
		[ARStructMemTypeInfo(Name = "valueFormat", Offset = 2u)]
		private uint _valueFormat;
		[ARStructMemTypeInfo(Name = "structType", Offset = 3u)]
		private uint _structType;
		public string Server
		{
			get
			{
				return this._server;
			}
			set
			{
				this._server = value;
			}
		}
		public uint NameType
		{
			get
			{
				return this._nameType;
			}
			set
			{
				this._nameType = value;
			}
		}
		public uint ValueFormat
		{
			get
			{
				return this._valueFormat;
			}
			set
			{
				this._valueFormat = value;
			}
		}
		public uint StructType
		{
			get
			{
				return this._structType;
			}
			set
			{
				this._structType = value;
			}
		}
		public DataDictionaryMenu()
		{
		}
		internal DataDictionaryMenu(object[] rawData, Server server) : base(rawData, server)
		{
			rawData = (object[])Util.GetAt(rawData, new int[]
			{
				5,
				1
			});
			object arg_2F_0 = rawData;
			int[] indexSpec = new int[1];
			this.Server = (string)Util.GetAt(arg_2F_0, indexSpec);
			this.NameType = Convert.ToUInt32(Util.GetAt(rawData, new int[]
			{
				1
			}));
			this.ValueFormat = Convert.ToUInt32(Util.GetAt(rawData, new int[]
			{
				2
			}));
			this.StructType = Convert.ToUInt32(Util.GetAt(rawData, new int[]
			{
				3
			}));
		}
		internal static DataDictionaryMenu createInstance(object[] rawData, Server server)
		{
			switch ((uint)Util.GetAt(rawData, new int[]
			{
				5,
				1,
				3
			}))
			{
			case 1u:
				return new FormDataDictionaryMenu(rawData, server);
			case 2u:
				return new FieldDataDictionaryMenu(rawData, server);
			default:
				return null;
			}
		}
	}
}
